package day19;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

// 本类是用来演示socket服务端的演示demo
public class Server {
    public static void main(String[] args) throws IOException {
        //1.启动服务器，监听端口为8888，等待客户端连接
        /**注意：
         * 1. 启动服务器后，需要把服务器的socket对象保存起来，
         * 2. 服务器对象需要一直运行，所以需要放在一个死循环中
         * 3. 指定端口号范围是：0~65535，0~1024为系统保留端口，不能指定
         */
        ServerSocket ss = new ServerSocket(8888);
        //2.等待客户端连接，如果客户端连接成功，就创建一个socket对象保存客户端对象
        Socket socket = ss.accept();
        //3.获取客户端的连接请求，用来接收客户端发送的数据
        InputStream in = socket.getInputStream();
        for (int i = 0; i < 5; i++) {
            // int b = in.read();
            char c = (char) in.read();
            System.out.print(c);
            //给客户端回一句world
            OutputStream out=socket.getOutputStream();//获取输出流
            //把要输出的数据转换成字节数组byte[]的形式进行输出
            out.write("world".getBytes());//输出数据
            out.flush();//清空缓冲区
        }
    }
}